
#pragma once

// STL
#include <iostream>
#include <fstream>
#include <string>
#include <list>
using namespace std;

// OpenGL headers
#include "GL/glew.h"
#include "GL/gl.h"
#include "GL/glu.h"
#include "GL/glut.h"
#include "IL/ilut.h"
#include "Cg/cg.h"
#include "Cg/cgGL.h"

// Qt headers
#include <QtGui>
#include <QtOpenGL>

// OpenGL libs
#pragma comment(lib, "glew32.lib")
#pragma comment(lib, "opengl32.lib")
#pragma comment(lib, "glu32.lib")
#pragma comment(lib, "glut32.lib")
#pragma comment(lib, "DevIL.lib")
#pragma comment(lib, "ILU.lib")
#pragma comment(lib, "ILUT.lib")
#pragma comment(lib, "cg.lib")
#pragma comment(lib, "cgGL.lib")

#ifndef TRUE
    #define TRUE 1
#endif

#ifndef FALSE
    #define FALSE 0
#endif

#define _USE_BOOST_ TRUE

// BOOST
#if _USE_BOOST_
    #include <boost/utility.hpp>
    #include <boost/ptr_container/ptr_unordered_map.hpp>
#endif // _USE_BOOST_

// others
#include "core/types.h"

#include "model3/model.h"
#include "model3/material.h"

// deklaracje funkcji
GLuint loadTexturePNG(const string& name);